1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Data;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10
11 namespace SoftQuanLyNhaHang.Views
12 {
13
14 public delegate void Link_ThuChi_EventHandler(object sender, EventArgs e);
15
16 public delegate void Link_QuanLyNhaCungCap_EventHandler(object sender, EventArgs e);
17
18 public delegate void Link_DanhSDonNhapHang_ByIdNcc_EventHandler(object sender, EventArgs e, int _idNcc);
19
20 public partial class uctCongNo_Ncc_Kh : UserControl
21 {
22 public uctCongNo_Ncc_Kh()
23 {
24 InitializeComponent();
25 }
26
27 public static uctCongNo_Ncc_Kh uctCn_Ncc_Kh = new uctCongNo_Ncc_Kh();
28
29 public event Link_ThuChi_EventHandler Link_ThuChi;
30
31 public event Link_QuanLyNhaCungCap_EventHandler Link_QuanLyNhaCungCap;
32
33 public event Link_DanhSDonNhapHang_ByIdNcc_EventHandler Link_DanhSDonNhapHang_ByIdNcc;
34
35 int _pageSize = 30;
36 int _pageIndex = 1;
37 int _stt = 0;
38 int _tongSoBanGhi = 0;
39
40 private void uctCongNo_Ncc_Kh_Load(object sender, EventArgs e)
41 {
42
43 this.HienThiThang_ComboXBox();
44
45 dgvTongHop.ColumnHeadersHeight = dgvTongHop.ColumnHeadersHeight * 2;
46 dgvTongHop.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter;
47
48 dgvTongHop.CellPainting += new DataGridViewCellPaintingEventHandler(dataGridView1_CellPainting);
49 dgvTongHop.Paint += new PaintEventHandler(dataGridView1_Paint);
50 dgvTongHop.Scroll += new ScrollEventHandler(dataGridView1_Scroll);
51 dgvTongHop.ColumnWidthChanged += new DataGridViewColumnEventHandler(dataGridView1_ColumnWidthChanged);
52
53 //this.HienThiDsTongHopCongNo(DateTime.Now, txtMaDoiTuong.Text.Trim(), txtTenDoiTuong.Text.Trim());
54
55 cmbThang.SelectedValue = DateTime.Now.Month.ToString();
56 txtNam.Text = DateTime.Now.Year.ToString();
57
58 }
59
60
61 public void HienThiToanBoTrang()
62 {
63 this.HienThiDsTongHopCongNo(DateTime.Now, txtMaDoiTuong.Text.Trim(), txtTenDoiTuong.Text.Trim());
64 }
65
66 private void HienThiThang_ComboXBox()
67 {
68 Dictionary<string, string> comboSource = new Dictionary<string, string>();
69 comboSource.Add("1", "1");
70 comboSource.Add("2", "2");
71 comboSource.Add("3", "3");
72 comboSource.Add("4", "4");
73 comboSource.Add("5", "5");
74 comboSource.Add("6", "6");
75 comboSource.Add("7", "7");
76 comboSource.Add("8", "8");
77 comboSource.Add("9", "9");
78 comboSource.Add("10", "10");
79 comboSource.Add("11", "11");
80 comboSource.Add("12", "12");
81
82
83 cmbThang.DataSource = new BindingSource(comboSource, null);
84 cmbThang.DisplayMember = "Value";
85 cmbThang.ValueMember = "Key";
86 }
87
88 private void dataGridView1_Paint(object sender, PaintEventArgs e)
89 {
90 Rectangle r1 = dgvTongHop.GetCellDisplayRectangle(dgvTongHop.Columns["NoDauKy"].Index, -1, true);
91 int w2 = dgvTongHop.GetCellDisplayRectangle(4, -1, true).Width;
92 r1.X += 1;
93 r1.Y += 1;
94 r1.Width = r1.Width + w2 - 2;
95 r1.Height = r1.Height / 2 + 2;
96 e.Graphics.FillRectangle(new SolidBrush(dgvTongHop.ColumnHeadersDefaultCellStyle.BackColor), r1);
97
98 StringFormat format = new StringFormat();
99
100 format.Alignment = StringAlignment.Center;
101 format.LineAlignment = StringAlignment.Center;
102 e.Graphics.DrawString("Số dư Đầu kỳ", dgvTongHop.ColumnHeadersDefaultCellStyle.Font,
103 new SolidBrush(dgvTongHop.ColumnHeadersDefaultCellStyle.ForeColor), r1, format);
104
105 //phat sinh trong ky
106 /*
107 Rectangle r = dataGridView1.GetCellDisplayRectangle(dataGridView1.Columns["PhatSinhNo"].Index, -1, true);
108 int w = dataGridView1.GetCellDisplayRectangle(4, -1, true).Width;
109 r.X += 1;
110 r.Y += 1;
111 r.Width = r.Width + w - 2;
112 r.Height = r.Height / 2 + 2;
113 e.Graphics.FillRectangle(new SolidBrush(dataGridView1.ColumnHeadersDefaultCellStyle.BackColor), r);
114
115 StringFormat fm = new StringFormat();
116
117 fm.Alignment = StringAlignment.Center;
118 fm.LineAlignment = StringAlignment.Center;
119 e.Graphics.DrawString("Phát sinh trong kỳ", dataGridView1.ColumnHeadersDefaultCellStyle.Font,
120 new SolidBrush(dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor), r, fm);
121 */
122
123 //
124 Rectangle r7 = dgvTongHop.GetCellDisplayRectangle(7, -1, true);
125 int w7 = dgvTongHop.GetCellDisplayRectangle(8, -1, true).Width;
126 r7.X += 1;
127 r7.Y += 1;
128 r7.Width = r7.Width + w7 - 2;
129 r7.Height = r7.Height / 2 + 2;
130 e.Graphics.FillRectangle(new SolidBrush(dgvTongHop.ColumnHeadersDefaultCellStyle.BackColor), r7);
131
132 StringFormat format7 = new StringFormat();
133
134 format.Alignment = StringAlignment.Center;
135 format.LineAlignment = StringAlignment.Center;
136 e.Graphics.DrawString("Số dư Cuối kỳ", dgvTongHop.ColumnHeadersDefaultCellStyle.Font,
137 new SolidBrush(dgvTongHop.ColumnHeadersDefaultCellStyle.ForeColor), r7, format);
138 }
139
140 private void dataGridView1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
141 {
142 Rectangle rtHeader = dgvTongHop.DisplayRectangle;
143 rtHeader.Height = dgvTongHop.ColumnHeadersHeight / 2;
144 dgvTongHop.Invalidate(rtHeader);
145 }
146
147 private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
148 {
149 if (e.RowIndex == -1 && e.ColumnIndex > -1)
150 {
151 Rectangle r2 = e.CellBounds;
152 r2.Y += e.CellBounds.Height / 2;
153 r2.Height = e.CellBounds.Height / 2;
154
155 e.PaintBackground(r2, true);
156 e.PaintContent(r2);
157 e.Handled = true;
158 }
159 }
160
161 private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
162 {
163 Rectangle rtHeader = dgvTongHop.DisplayRectangle;
164 rtHeader.Height = dgvTongHop.ColumnHeadersHeight / 2;
165 dgvTongHop.Invalidate(rtHeader);
166 }
167
168
169 private void HienThiDsTongHopCongNo(DateTime _thangBaoCao, string _maDoiTuong, string _tenDoiTuong)
170 {
171 DataTable dtCn = new DataTable();
172 dtCn = Controllers.CongNoCtrl.FillDataSet_CongNo_TongHop_Search(_thangBaoCao, _maDoiTuong, _tenDoiTuong, _pageSize, _pageIndex).Tables[0];
173
174
175
176 if (dtCn.Rows.Count > 0)
177 {
178 _tongSoBanGhi = Int32.Parse(dtCn.Rows[0]["TongSoBanGhi"].ToString());
179
180 dgvTongHop.Rows.Clear();
181 //Ẩn cột đầu tiên
182 dgvTongHop.RowHeadersVisible = false;
183 //-https://stackoverflow.com/questions/17404969/right-align-a-column-in-datagridview-doesnt-work
184 this.dgvTongHop.Columns["STT"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
185 this.dgvTongHop.Columns["STT"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
186
187 this.dgvTongHop.Columns["NoDauKy"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
188
189 this.dgvTongHop.Columns["CoDauKy"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
190
191 this.dgvTongHop.Columns["NoPhatSinh"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
192
193 this.dgvTongHop.Columns["CoPhatSinh"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
194
195 this.dgvTongHop.Columns["NoCuoiKy"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
196
197 this.dgvTongHop.Columns["CoCuoiKy"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
198
199
200 foreach (DataRow item in dtCn.Rows)
201 {
202 _stt += 1;
203 int n = dgvTongHop.Rows.Add();
204 dgvTongHop.Rows[n].Cells["STT"].Value = _stt.ToString();
205
206
207 dgvTongHop.Rows[n].Cells["MaDoiTuong"].Value = item["IdNhaCungCap"].ToString();
208
209 dgvTongHop.Rows[n].Cells["IdNhaCungCap"].Value = item["IdNhaCungCap"].ToString();
210
211 //if (item["TenCongTy"].ToString() == "")
212 //{
213 dgvTongHop.Rows[n].Cells["TenDoiTuong"].Value = item["HoVaTen"].ToString();
214 //}
215 //else
216 //{
217 // dgvTongHop.Rows[n].Cells["TenDoiTuong"].Value = item["TenCongTy"].ToString();
218 //}
219
220
221
222 dgvTongHop.Rows[n].Cells["NoDauKy"].Value = CauHinhHeThong.Format_SoDeHienThi(CauHinhHeThong.Format_SoDeTinhToan(item["NoDauKy"].ToString(), false), true);
223
224 dgvTongHop.Rows[n].Cells["CoDauKy"].Value = CauHinhHeThong.Format_SoDeHienThi(CauHinhHeThong.Format_SoDeTinhToan(item["CoDauKy"].ToString(), false), true);
225
226 dgvTongHop.Rows[n].Cells["NoPhatSinh"].Value = CauHinhHeThong.Format_SoDeHienThi(CauHinhHeThong.Format_SoDeTinhToan(item["NoPhatSinh"].ToString(), false), true);
227
228 dgvTongHop.Rows[n].Cells["CoPhatSinh"].Value = CauHinhHeThong.Format_SoDeHienThi(CauHinhHeThong.Format_SoDeTinhToan(item["CoPhatSinh"].ToString(), false), true);
229
230 dgvTongHop.Rows[n].Cells["NoCuoiKy"].Value = CauHinhHeThong.Format_SoDeHienThi(CauHinhHeThong.Format_SoDeTinhToan(item["NoCuoiKy"].ToString(), false), true);
231
232 dgvTongHop.Rows[n].Cells["CoCuoiKy"].Value = CauHinhHeThong.Format_SoDeHienThi(CauHinhHeThong.Format_SoDeTinhToan(item["CoCuoiKy"].ToString(),false),true);
233
234 //dgvTongHop.Rows[n].Cells["ChiTiet"].Value = "Chi tiết";
235 }
236 }
237 else
238 {
239 dgvTongHop.Rows.Clear();
240 _tongSoBanGhi = 0;
241 }
242
243 lblTongSoBanGhiHienThi.Text = CauHinhHeThong.HienThiSoBanGhiTuA_DenB(_pageSize, _pageIndex, _stt.ToString(), _tongSoBanGhi.ToString());
244 }
245
246 private void btnThucHien_Click(object sender, EventArgs e)
247 {
248 _pageSize = 30;
249 _pageIndex = 1;
250 _stt = 0;
251
252 if (string.IsNullOrEmpty(txtNam.Text.Trim()))
253 {
254 txtNam.Focus();
255 return;
256 }
257
258 string thag = cmbThang.SelectedValue.ToString();
259 string nam = txtNam.Text.Trim();
260
261 if (int.Parse(thag) >= 1 && int.Parse(thag) <= 12)
262 {
263 thag = int.Parse(cmbThang.SelectedValue.ToString()).ToString("00");
264 lblThongBao.Visible = false;
265 }
266 else
267 {
268 lblThongBao.Text = "Lỗi! Tháng không đúng.";
269 lblThongBao.Visible = true;
270 cmbThang.Focus();
271 return;
272 }
273
274 if (int.Parse(nam) > 2000 && int.Parse(nam) < 2100)
275 {
276 lblThongBao.Visible = false;
277 }
278 else
279 {
280 lblThongBao.Text = "Lỗi! Năm không đúng.";
281 lblThongBao.Visible = true;
282 txtNam.Focus();
283 return;
284 }
285
286 string nthang = nam + "-" + thag + "-01";
287 DateTime thangbc = DateTime.Parse(nthang);
288 this.HienThiDsTongHopCongNo(thangbc, txtMaDoiTuong.Text.Trim(), txtTenDoiTuong.Text.Trim());
289
290
291 }
292
293 private void btnTiep_Click(object sender, EventArgs e)
294 {
295 if (_tongSoBanGhi > (_pageSize * _pageIndex))
296 {
297 _pageIndex = _pageIndex + 1;
298
299
300 if (string.IsNullOrEmpty(txtNam.Text.Trim()))
301 {
302 txtNam.Focus();
303 return;
304 }
305
306 string thag = cmbThang.SelectedValue.ToString();
307 string nam = txtNam.Text.Trim();
308
309 if (int.Parse(thag) >= 1 && int.Parse(thag) <= 12)
310 {
311 thag = int.Parse(cmbThang.SelectedValue.ToString()).ToString("00");
312 lblThongBao.Visible = false;
313 }
314 else
315 {
316 lblThongBao.Text = "Lỗi! Tháng không đúng.";
317 lblThongBao.Visible = true;
318 cmbThang.Focus();
319 return;
320 }
321
322 if (int.Parse(nam) > 2000 && int.Parse(nam) < 2100)
323 {
324 lblThongBao.Visible = false;
325 }
326 else
327 {
328 lblThongBao.Text = "Lỗi! Năm không đúng.";
329 lblThongBao.Visible = true;
330 txtNam.Focus();
331 return;
332 }
333
334 string nthang = nam + "-" + thag + "-01";
335 DateTime thangbc = DateTime.Parse(nthang);
336 this.HienThiDsTongHopCongNo(thangbc, txtMaDoiTuong.Text.Trim(), txtTenDoiTuong.Text.Trim());
337
338
339 }
340 else
341 {
342 return;
343 }
344 }
345
346 private void btnSau_Click(object sender, EventArgs e)
347 {
348 if ((_pageSize * _pageIndex) > _pageSize)
349 {
350 _pageIndex = _pageIndex - 1;
351 _stt = _pageSize * _pageIndex - _pageSize;
352
353
354 if (string.IsNullOrEmpty(txtNam.Text.Trim()))
355 {
356 txtNam.Focus();
357 return;
358 }
359
360 string thag = cmbThang.SelectedValue.ToString();
361 string nam = txtNam.Text.Trim();
362
363 if (int.Parse(thag) >= 1 && int.Parse(thag) <= 12)
364 {
365 thag = int.Parse(cmbThang.SelectedValue.ToString()).ToString("00");
366 lblThongBao.Visible = false;
367 }
368 else
369 {
370 lblThongBao.Text = "Lỗi! Tháng không đúng.";
371 lblThongBao.Visible = true;
372 cmbThang.Focus();
373 return;
374 }
375
376 if (int.Parse(nam) > 2000 && int.Parse(nam) < 2100)
377 {
378 lblThongBao.Visible = false;
379 }
380 else
381 {
382 lblThongBao.Text = "Lỗi! Năm không đúng.";
383 lblThongBao.Visible = true;
384 txtNam.Focus();
385 return;
386 }
387
388 string nthang = nam + "-" + thag + "-01";
389 DateTime thangbc = DateTime.Parse(nthang);
390 this.HienThiDsTongHopCongNo(thangbc, txtMaDoiTuong.Text.Trim(), txtTenDoiTuong.Text.Trim());
391
392
393 }
394 else
395 {
396 _pageIndex = 1;
397 }
398 }
399
400 private void txtNam_KeyPress(object sender, KeyPressEventArgs e)
401 {
402 CauHinhHeThong.NhapSoTrongTextBox(sender, e);
403 }
404
405 private void cmbThang_SelectionChangeCommitted(object sender, EventArgs e)
406 {
407 _pageSize = 30;
408 _pageIndex = 1;
409 _stt = 0;
410
411 if (string.IsNullOrEmpty(txtNam.Text.Trim()))
412 {
413 txtNam.Focus();
414 return;
415 }
416
417 string thag = cmbThang.SelectedValue.ToString();
418 string nam = txtNam.Text.Trim();
419
420 if (int.Parse(thag) >= 1 && int.Parse(thag) <= 12)
421 {
422 thag = int.Parse(cmbThang.SelectedValue.ToString()).ToString("00");
423 lblThongBao.Visible = false;
424 }
425 else
426 {
427 lblThongBao.Text = "Lỗi! Tháng không đúng.";
428 lblThongBao.Visible = true;
429 cmbThang.Focus();
430 return;
431 }
432
433 if (int.Parse(nam) > 2000 && int.Parse(nam) < 2100)
434 {
435 lblThongBao.Visible = false;
436 }
437 else
438 {
439 lblThongBao.Text = "Lỗi! Năm không đúng.";
440 lblThongBao.Visible = true;
441 txtNam.Focus();
442 return;
443 }
444
445 string nthang = nam + "-" + thag + "-01";
446 DateTime thangbc = DateTime.Parse(nthang);
447 this.HienThiDsTongHopCongNo(thangbc, txtMaDoiTuong.Text.Trim(), txtTenDoiTuong.Text.Trim());
448
449 }
450
451 private void linkLabel_ThuChi_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
452 {
453 if (this.Link_ThuChi != null)
454 {
455 this.Link_ThuChi(sender, e);
456 }
457 }
458
459 private void linkLabel_QuanLyNhaCungCap_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
460 {
461 if (this.Link_QuanLyNhaCungCap != null)
462 {
463 this.Link_QuanLyNhaCungCap(sender, e);
464 }
465 }
466
467 private void dgvTongHop_CellClick(object sender, DataGridViewCellEventArgs e)
468 {
469 if (dgvTongHop.Columns[e.ColumnIndex].Name == "TenDoiTuong" && e.RowIndex != -1)
470 {
471 //-https://stackoverflow.com/questions/12762036/datagridview-cell-click-event
472 if (dgvTongHop.CurrentCell != null && dgvTongHop.CurrentCell.Value != null)
473 {
474 int _idNcc = 0;
475 _idNcc = Int32.Parse(dgvTongHop.Rows[e.RowIndex].Cells["IdNhaCungCap"].Value.ToString());
476 //Truyền dữ liệu sang uct NhapHang
477 if (this.Link_DanhSDonNhapHang_ByIdNcc != null)
478 {
479 this.Link_DanhSDonNhapHang_ByIdNcc(sender, e, _idNcc);
480 }
481 }
482
483 }
484 }
485
486 }
487 }